package net.dgg.dggcloud.service.jrcrm.entity.customer;

import net.dgg.dggcloud.core.util.StringUtils;
import net.dgg.dggcloud.service.entity.BaseEntity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;

/**
 * 用于客户负债信息维护
 * @ClassName: AttrLiability-客户负债信息
 * @Author: 周潮
 * @Date: 2017年11月03 14:28:28
 * @Version V1.0
 */
@Entity
@Table(name = "cus_attr_liability")
public class AttrLiability extends BaseEntity {

    //数据库表名
    public static final String TABLE_NAME = "cus_attr_liability";

    /**
     * 客户id
     */
    @Column(name = "customer_id")
    private Long customerId;

    /**
     * 负债所有内容前台展示用
     */
    @Transient
    private String frontShow;

    /**
     * 负债类型
     */
    @Column(name = "liability_type")
    private String liabilityType;

    /**
     * 负债类型-前台展示用
     */
    @Transient
    private String liabilityTypeShow;

    /**
     * 是否逾期
     */
    @Column(name = "is_overdue")
    private String isOverdue;

    /**
     * 是否逾期-前台展示用
     */
    @Transient
    private String isOverdueShow;

    /**
     * 逾期金额
     */
    @Column(name = "overdue_amount")
    private Double overdueAmount;

    /**
     * 逾期金额-前台展示用
     */
    @Transient
    private String overdueAmountShow;

    /**
     * 逾期次数
     */
    @Column(name = "overdue_times")
    private Integer overdueTimes;

    /**
     * 逾期次数-前台展示用
     */
    @Transient
    private String overdueTimesShow;

    /**
     * 外部系统读取标志 预留扩展字段，每外部系统占用一位，如1001
     */
    @Column(name = "read_flag")
    private String readFlag;

    /**
     * 外部系统来源标志 预留扩展字段，每外部系统占用一位，如1001
     */
    @Column(name = "source_flag")
    private String sourceFlag;

    /**
     * 扩展字段1
     */
    @Column(name = "ext1")
    private String ext1;

    /**
     * 扩展字段2
     */
    @Column(name = "ext2")
    private String ext2;

    /**
     * 扩展字段3
     */
    @Column(name = "ext3")
    private String ext3;

    /**
     * 扩展字段4
     */
    @Column(name = "ext4")
    private String ext4;

    /**
     * 扩展字段5
     */
    @Column(name = "ext5")
    private String ext5;


    /**
     * 外部系统读取标志 预留扩展字段，每外部系统占用一位，如1001
     * @return read_flag 外部系统读取标志 预留扩展字段，每外部系统占用一位，如1001
     */
    public String getReadFlag() {
        return readFlag;
    }

    /**
     * 外部系统读取标志 预留扩展字段，每外部系统占用一位，如1001
     * @param readFlag 外部系统读取标志 预留扩展字段，每外部系统占用一位，如1001
     */
    public void setReadFlag(String readFlag) {
        this.readFlag = readFlag == null ? null : readFlag.trim();
    }

    /**
     * 外部系统来源标志 预留扩展字段，每外部系统占用一位，如1001
     * @return source_flag 外部系统来源标志 预留扩展字段，每外部系统占用一位，如1001
     */
    public String getSourceFlag() {
        return sourceFlag;
    }

    /**
     * 外部系统来源标志 预留扩展字段，每外部系统占用一位，如1001
     * @param sourceFlag 外部系统来源标志 预留扩展字段，每外部系统占用一位，如1001
     */
    public void setSourceFlag(String sourceFlag) {
        this.sourceFlag = sourceFlag == null ? null : sourceFlag.trim();
    }

    /**
     * 客户id
     * @return customer_id 客户id
     */
    public Long getCustomerId() {
        return customerId;
    }

    /**
     * 客户id
     * @param customerId 客户id
     */
    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    /**
     * 负债类型
     * @return liability_type 负债类型
     */
    public String getLiabilityType() {
        return liabilityType;
    }

    /**
     * 负债类型
     * @param liabilityType 负债类型
     */
    public void setLiabilityType(String liabilityType) {
        this.liabilityType = liabilityType == null ? null : liabilityType.trim();
    }

    /**
     * 是否逾期
     * @return is_overdue 是否逾期
     */
    public String getIsOverdue() {
        return isOverdue;
    }

    /**
     * 是否逾期
     * @param isOverdue 是否逾期
     */
    public void setIsOverdue(String isOverdue) {
        this.isOverdue = isOverdue;
    }

    /**
     * 逾期金额
     * @return overdue_amount 逾期金额
     */
    public Double getOverdueAmount() {
        return (null != overdueAmount ? overdueAmount/100 : null);
    }

    /**
     * 逾期金额
     * @param overdueAmount 逾期金额
     */
    public void setOverdueAmount(Double overdueAmount) {
        this.overdueAmount = (null != overdueAmount ? overdueAmount*100 : null);
    }

    /**
     * 逾期次数
     * @return overdue_times 逾期次数
     */
    public Integer getOverdueTimes() {
        return overdueTimes;
    }

    /**
     * 逾期次数
     * @param overdueTimes 逾期次数
     */
    public void setOverdueTimes(Integer overdueTimes) {
        this.overdueTimes = overdueTimes;
    }

    /**
     * 扩展字段1
     * @return ext1 扩展字段1
     */
    public String getExt1() {
        return ext1;
    }

    /**
     * 扩展字段1
     * @param ext1 扩展字段1
     */
    public void setExt1(String ext1) {
        this.ext1 = ext1 == null ? null : ext1.trim();
    }

    /**
     * 扩展字段2
     * @return ext2 扩展字段2
     */
    public String getExt2() {
        return ext2;
    }

    /**
     * 扩展字段2
     * @param ext2 扩展字段2
     */
    public void setExt2(String ext2) {
        this.ext2 = ext2 == null ? null : ext2.trim();
    }

    /**
     * 扩展字段3
     * @return ext3 扩展字段3
     */
    public String getExt3() {
        return ext3;
    }

    /**
     * 扩展字段3
     * @param ext3 扩展字段3
     */
    public void setExt3(String ext3) {
        this.ext3 = ext3 == null ? null : ext3.trim();
    }

    /**
     * 扩展字段4
     * @return ext4 扩展字段4
     */
    public String getExt4() {
        return ext4;
    }

    /**
     * 扩展字段4
     * @param ext4 扩展字段4
     */
    public void setExt4(String ext4) {
        this.ext4 = ext4 == null ? null : ext4.trim();
    }

    /**
     * 扩展字段5
     * @return ext5 扩展字段5
     */
    public String getExt5() {
        return ext5;
    }

    /**
     * 扩展字段5
     * @param ext5 扩展字段5
     */
    public void setExt5(String ext5) {
        this.ext5 = ext5 == null ? null : ext5.trim();
    }

    public void setFrontShow(String frontShow) {
        this.frontShow = frontShow;
    }

    public String getLiabilityTypeShow() {
        return StringUtils.isNotEmpty(liabilityType) ? "负债类型【" + liabilityType + "】;" : "";
    }

    public void setLiabilityTypeShow(String liabilityTypeShow) {
        this.liabilityTypeShow = liabilityTypeShow;
    }

    public String getIsOverdueShow() {
        return StringUtils.isNotEmpty(isOverdue) ? "是否逾期【" + isOverdue + "】;" : "";
    }

    public void setIsOverdueShow(String isOverdueShow) {
        this.isOverdueShow = isOverdueShow;
    }

    public String getOverdueAmountShow() {
        return (null != getOverdueAmount() ? "逾期金额【" + getOverdueAmount() + "元】;" : "");
    }

    public void setOverdueAmountShow(String overdueAmountShow) {
        this.overdueAmountShow = overdueAmountShow;
    }

    public String getOverdueTimesShow() {
        if(null != overdueTimes){
            return  "逾期次数【" + overdueTimes + "次】;" ;
        }else {
            return "";
        }
    }

    public void setOverdueTimesShow(String overdueTimesShow) {
        this.overdueTimesShow = overdueTimesShow;
    }

    public String getFrontShow() {
        return "有负债：" + getLiabilityTypeShow() + getIsOverdueShow() + getOverdueAmountShow() + getOverdueTimesShow();
    }
}